home *** CD-ROM | disk | FTP | other *** search
/ Winzipper / Winzipper_ISO.iso / nt4.0 server / DRVLIB.NIC / WAVLAN / OEMSETUP.INF < prev    next >
Encoding:
INI File  |  1996-07-31  |  29.7 KB  |  915 lines

  1. [Identification]
  2.     OptionType = NetAdapter
  3.  
  4. [PlatformsSupported]
  5.     ISA
  6.     EISA
  7.     "Jazz-Internal Bus"
  8.     MCA
  9.  
  10. [FileConstants]
  11.     UtilityInf              = "UTILITY.INF"
  12.     SubRoutineInf           = "SUBROUTN.INF"
  13.     ParamInf                = "NCPARAM.INF"
  14.     SoftwareType            = "driver"
  15.     Exit_Code               = 0
  16.     NetEventDLL             = "%SystemRoot%\System32\netevent.dll"
  17.     IoLogMsgDLL             = "%SystemRoot%\System32\IoLogMsg.dll"
  18.     Manufacturer            = "Microsoft"
  19.     ProductMajorVersion     = "3"
  20.     ProductMinorVersion     = "1"
  21.     ProductVersion          = $(ProductMajorVersion)"."$(ProductMinorVersion)
  22.     ProductSoftwareName     = "WaveLAN"
  23.     ProductSoftwareTitle    = "WaveLAN Adapter Driver"
  24.     ProductSoftwarePath        = "\SystemRoot\System32\drivers\WaveLAN.sys"
  25.     NetRuleSoftwareType     = "WaveLANSys ndisDriver WaveLANDriver"
  26.     NetRuleSoftwareUse      = $(SoftwareType)
  27.     NetRuleSoftwareBindForm = """WaveLANSys"" yes no container"
  28.     NetRuleSoftwareClass    = {"WaveLANDriver basic"}
  29.     NetRuleSoftwareBindable = {"WaveLANDriver WaveLANAdapter non exclusive 100"}
  30.     ProductHardwareName     = "WaveLAN"
  31.     ProductHardwareTitle    = "WaveLAN Adapter"
  32.     NetRuleHardwareType     = "WaveLAN WaveLANAdapter"
  33.     NetRuleHardwareBindForm = " yes yes container"
  34.     NetRuleHardwareClass    = {"WaveLANAdapter basic"}
  35.     ProductKeyName          = $(!NTN_SoftwareBase)"\"$(Manufacturer)"\"$(ProductSoftwareName)"\CurrentVersion"
  36.     ParamKeyName            = $(!NTN_ServiceBase)"\"$(ProductHardwareName)"\Parameters"
  37.  
  38. [GeneralConstants]
  39.     from                      = ""
  40.     to                        = ""
  41.     ExitCodeOk                 = 0
  42.     ExitCodeCancel             = 1
  43.     ExitCodeFatal              = 2
  44.     KeyNull                 = ""
  45.     MAXIMUM_ALLOWED           = 33554432
  46.     RegistryErrorIndex         = NO_ERROR
  47.     KeyProduct              = ""
  48.     KeyParameters           = ""
  49.     TRUE                    = 1
  50.     FALSE                   = 0
  51.     NoTitle                    = 0
  52.     ExitState               = "Active"
  53.     OldVersionExisted         = $(FALSE)
  54.     DriverPath              = $(!STF_NTPATH)\drivers
  55.  
  56. [Date]
  57.     Now                     = {} ? $(!LIBHANDLE) GetSystemDate
  58.  
  59. [Identify]
  60.     Read-Syms Identification
  61.     Set Status                 = STATUS_SUCCESSFUL
  62.     Set Identifier             = $(OptionType)
  63.     Set Media                  = #("Source Media Descriptions", 1, 1)
  64.     Return $(Status) $(Identifier) $(Media)
  65.  
  66. [ReturnOptions]
  67.     Set Status                 = STATUS_FAILED
  68.     Set OptionList             = {}
  69.     Set OptionTextList         = {}
  70.     Set LanguageList         = ^(LanguagesSupported, 1)
  71.     IfContains(i) $($0) in $(LanguageList)
  72.         IfStr(i) $($1) == ""
  73.             Goto returnOptions
  74.         EndIf
  75.         Set PlatformList    = ^(PlatformsSupported, 1)
  76.         IfContains(i) $($1) in $(PlatformList)
  77.             Goto returnOptions
  78.         Else
  79.             Set Status = STATUS_NOTSUPPORTED
  80.             Goto finish_ReturnOptions
  81.         EndIf
  82.     Else
  83.         Set Status = STATUS_NOLANGUAGE
  84.         Goto finish_ReturnOptions
  85.     EndIf
  86. returnOptions = +
  87.     Set OptionList             = ^(Options, 1)
  88.     Set OptionTextList         = ^(OptionsText$($0), 1)
  89.     Set Status                 = STATUS_SUCCESSFUL
  90. finish_ReturnOptions = +
  91.     Return $(Status) $(OptionList) $(OptionTextList)
  92.  
  93. [InstallOption]
  94.     Set Option               = $($1)
  95.     Set SrcDir               = $($2)
  96.     Set AddCopy              = $($3)
  97.     Set DoCopy               = $($4)
  98.     Set DoConfig             = $($5)
  99.     Set LanguageList        = ^(LanguagesSupported, 1)
  100.     IfContains(i) $($0) NOT-IN $(LanguageList)
  101.         Return STATUS_NOLANGUAGE
  102.     EndIf
  103. ; FIXME
  104.     Set !DebugOutputControl    = 1
  105.     Debug-Output "WaveLAN: STF_CWDIR    = "$(!STF_CWDIR)
  106.     Debug-Output "WaveLAN: STF_LANGUAGE = "$(!STF_LANGUAGE)
  107.     Set-Subst LF = "\n"
  108.     Read-Syms GeneralConstants
  109.     Read-Syms FileConstants
  110.     Read-Syms DialogConstants$(!STF_LANGUAGE)
  111.     IfStr(i) $(!NTN_Origination) == "NCPA"
  112.         Set Continue = "OK"
  113.     EndIf
  114.     Read-Syms FileConstants$(!STF_LANGUAGE)
  115.     Detect Date
  116.     Set-Title  $(FunctionTitle)
  117.     Set to   = Begin
  118.     Set from = Begin
  119.     Set CommonStatus = STATUS_SUCCESSFUL
  120.     EndWait
  121. Begin = +
  122.     Set ActivateDetection = FALSE
  123.     IfStr(i)      $(!NTN_InstallMode) == Deinstall
  124.         Set StartLabel = RemoveAdapter
  125.     Else-IfStr(i) $(!NTN_InstallMode) == Update
  126.         Set StartLabel = UpgradeSoftware
  127.     Else-IfStr(i) $(!NTN_InstallMode) == Bind
  128.         Set StartLabel = BindingAdapter
  129.     Else-IfStr(i) $(!NTN_InstallMode) == Configure
  130.         Set StartLabel = ConfigureAdapter
  131. ;        Set ActivateDetection = TRUE
  132.         IfStr(i) $(ProductKeyName) == $(!NTN_RegBase)
  133.             Debug-Output "WaveLAN: ProductKeyName="$(ProductKeyName)
  134.             Shell $(UtilityInf),RegistryErrorString,CANNOT_CONFIGURE_SOFTWARE
  135.             IfInt $($ShellCode) != $(!SHELL_CODE_OK)
  136.                 Debug-Output "WaveLAN:ShellCode: RegistryErrorString: "$($ShellCode)
  137.                 Goto ShellCodeError
  138.             EndIf
  139.             Set Error = $($R0)
  140.             Set from = end
  141.             Set to = end
  142.             Goto nonFatalInfo
  143.         EndIf
  144.     Else
  145. ;        Set ActivateDetection = TRUE
  146.         Set StartLabel = InstallAdapter
  147.         Set OEM_ABANDON_OPTIONS = {}
  148.         Set OEM_ABANDON_SOFTWARE = FALSE
  149.         Set OEM_ABANDON_ON = TRUE
  150.     EndIf
  151.     Debug-Output "WaveLAN: =================================================="
  152.     Debug-Output "WaveLAN: Option        = "$(Option)
  153.     Debug-Output "WaveLAN: STF_CWDIR     = "$(!STF_CWDIR)
  154.     Debug-Output "WaveLAN: STF_LANGUAGE  = "$(!STF_LANGUAGE)
  155.     Debug-Output "WaveLAN: STF_NCDETECT  = "$(!STF_NCDETECT)
  156.     Debug-Output "WaveLAN: STF_NCOPTION  = "$(!STF_NCOPTION)
  157.     Debug-Output "WaveLAN: STF_NCDETCARD = "$(!STF_NCDETCARD)
  158.     Debug-Output "WaveLAN: STF_NCDETINFO = "$(!STF_NCDETINFO)
  159.     Debug-Output "WaveLAN: =================================================="
  160. ; FIXME
  161.     Set DebugFlags                        = 1
  162.     Set MaxTransmits                    = 1
  163.     IfStr(i) $(Option) == WAVELAN_ISA
  164.         Set BoardType                    = 1
  165.     Else
  166.         Set BoardType                    = 3
  167.     EndIf
  168.     Set DetectedCard                    = FALSE
  169.     Set ActivateDetection                = FALSE
  170.     IfStr(i) $(ActivateDetection) != TRUE
  171.         IfInt $(BoardType) == 1
  172. ;;;            WAVELAN_ISA
  173.             Debug-Output "WaveLAN: ISA"
  174.             Set IOAddrList                = {768,912,960,992}
  175.             Set IOAddrValue                = 768
  176.             Set    Combo1Label             = "I/O &Port Address:"
  177.             
  178.             Shell $(ParamInf) HexListFromDecList $(IOAddrList)
  179.             Set IOAddrHexList            = $($R0)
  180.         Else
  181. ;;;            WAVELAN_MCA
  182.             Debug-Output "WaveLAN: MCA"
  183.             Set IOAddrList                = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}
  184.             Set IOAddrValue                = 1
  185.             Set    Combo1Label             = "MCA &Slot:"
  186.             Shell $(ParamInf) HexListFromDecList $(IOAddrList)
  187.             Set IOAddrHexList            = $($R0)
  188.         EndIf
  189.         Goto $(StartLabel)
  190.     EndIf
  191.     Set TypeList = {{IOADDR, IOAddrList, IOAddrValue}}
  192.     Debug-Output "WaveLAN: Calling Param_BuildTypeLists"
  193.     Shell $(ParamInf) Param_BuildTypeLists $(Option) $(TypeList)
  194.     IfInt $($ShellCode) != $(!SHELL_CODE_OK)
  195.         Debug-Output "WaveLAN: Cannot run Param_BuildTypeLists"
  196.         Goto ShellCodeError
  197.     EndIf
  198.     Set Status = $($R0)
  199.     IfStr(i) $(Status) != STATUS_SUCCESSFUL
  200.         Debug-Output "WaveLAN: Param_BuildTypeLists ERROR="$(Status)
  201.         Goto fatalDetect
  202.     EndIf
  203.     Debug-Output "WaveLAN: Calling Param_SetDefaults"
  204.     Shell $(ParamInf) Param_SetDefaults {}
  205.     Shell $(ParamInf) HexListFromDecList $(IOAddrList)
  206.     Set IOAddrHexList = $($R0)
  207.     IfStr(i) $(!STF_NCDETECT) == YES
  208.         IfStr(i) $(!STF_NCOPTION) == $(Option)
  209.             Set DetectedCard = TRUE
  210.             Debug-Output "WaveLAN: Setting DetectedCard = TRUE"
  211.         EndIf
  212.     EndIf
  213.     Shell "" DebugConfiguration "After Parameter Query"
  214.     Set from = $(fatal)
  215.     Set to = $(fatal)
  216.     Goto $(StartLabel)
  217. InstallAdapter = +
  218.     Install "Install-Hlp"
  219.     Debug-Output "WaveLAN: InstallAdapter"
  220.     OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct
  221.     IfStr $(KeyProduct) != $(KeyNull)
  222.         CloseRegKey $(KeyProduct)
  223.         IfStr(i) !(NTN_RegBase) == $(ProductKeyName)
  224.             Shell $(UtilityInf), VerExistedDlg, $(ProductSoftwareTitle),+
  225.                 $(ProductVersion)
  226.             IfInt $($ShellCode) != $(!SHELL_CODE_OK)
  227.                 Debug-Output "WaveLAN: Cannot run VerExistedDlg"
  228.                 Goto ShellCodeError
  229.             EndIf
  230.             Debug-Output "WaveLAN: Adapter already installed"
  231.             Goto end
  232.         Else
  233.             Shell $(UtilityInf), CardExistedDlg
  234.             IfInt $($ShellCode) != $(!SHELL_CODE_OK)
  235.                 Debug-Output "WaveLAN: Cannot run CardExistedDlg"
  236.                 Goto ShellCodeError
  237.             EndIf
  238.             IfStr(i) $($R1) != "OK"
  239.                 Goto end
  240.             EndIf
  241.             Set OldVersionExisted = $(TRUE)
  242.         EndIf
  243.     EndIf
  244.     IfStr(i) $(DetectedCard) != TRUE
  245.         Goto adapterSetup
  246.     EndIf
  247.     StartWait
  248.     Shell $(ParamInf) Param_QueryCard $(!STF_NCDETCARD)
  249.     EndWait
  250.     IfStr(i) $($R0) != STATUS_SUCCESSFUL
  251.         Goto adapterSetup
  252.     EndIf
  253.     Set DetectedParams = $($R1)
  254.     Debug-Output "WaveLAN: Calling Param_SetDefaults to merge detected params"
  255.     Shell $(ParamInf) Param_SetDefaults $(DetectedParams)
  256.     Goto adapterSetup
  257. ConfigureAdapter = +
  258.     Debug-Output "WaveLAN: ConfigureAdapter"
  259. ;    IfInt $(BoardType) == 3
  260. ;        Set Error =  "WaveLAN: ISA adapter cannot be configured."
  261. ;        Debug-Output $(Error)
  262. ;        Goto successful
  263. ;    EndIf
  264.     IfStr $(KeyProduct) == $(KeyNull)
  265.         OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_RegBase) $(MAXIMUM_ALLOWED) KeyProduct
  266.         IfStr $(KeyProduct) == $(KeyNull)
  267.             Set RegistryErrorIndex = CANNOT_FIND_COMPONENT_SERVICE
  268.             Debug-Output "WaveLAN: Cannot find component product key."
  269.             Goto fatalRegistry
  270.         EndIf
  271.     EndIf
  272.     Debug-Output "WaveLAN: Calling FindService"
  273.     Shell $(UtilityInf) FindService, $(KeyProduct)
  274.     IfInt $($ShellCode) != $(!SHELL_CODE_OK)
  275.         Debug-Output "WaveLAN: Cannot run FindService"
  276.         Goto ShellCodeError
  277.     EndIf
  278.     IfStr(i) $($R0) != NO_ERROR
  279.         Debug-Output "WaveLAN: FindService ERROR="$($R0)
  280.         Goto fatalRegistry
  281.     EndIf
  282.     Set KeyParameters = $($R2)
  283.     CloseRegKey $($R1)
  284.     IfStr $(KeyParameters) == $(KeyNull)
  285.         Set RegistryErrorIndex = CANNOT_FIND_COMPONENT_SERVICE
  286.         Debug-Output "WaveLAN: Cannot find component service"
  287.         Goto fatalRegistry
  288.     EndIf
  289.     Set OldVersionExisted = $(TRUE)
  290.     Set ValueName = ""
  291.     Set ValueData = ""
  292.     Set ValueStr  = ""
  293.     Set ValueList = {}
  294.     EnumRegValue $(KeyParameters) ValueList
  295.     ForListDo $(ValueList)
  296.         Set ValueItem = $($)
  297.         Set ValueName = *($(ValueItem),1)
  298.         Set ValueData = *($(ValueItem),4)
  299.         IfStr(i) $(ValueName) == "IOAddr"
  300.             Set IOAddrValue = $(ValueData)
  301.         EndIf
  302.     EndForListDo
  303. adapterSetup = +
  304.     Debug-Output "WaveLAN: adapterSetup"
  305. ;    IfInt $(BoardType) == 3
  306. ;        Goto skipOptions
  307. ;    EndIf
  308.     Shell "" DebugConfiguration "Before Dialog"
  309.     Set from = adapterOptions
  310.     Set IOAddrHexValue = *($(IOAddrHexList), ~($(IOAddrList),$(IOAddrValue)))
  311.     Shell $(ParamInf) Param_ParameterConfidence
  312.     IfStr(i) $($R0) != STATUS_SUCCESSFUL
  313.         Debug-Output "WaveLAN: Parameter confidence too low to bypass configuration"
  314.         Goto adapterOptions
  315.     EndIf
  316.     IfStr(i) $(DetectedCard) == TRUE
  317.         IfStr(i) $(!STF_INSTALL_MODE) != CUSTOM
  318.             Goto adapterVerify
  319.         EndIf
  320.     EndIf
  321. adapterOptions = +
  322.     Debug-Output "WaveLAN: adapterOptions"
  323.     Set from = adapterOptions
  324.     Read-Syms FileDependentDlg$(!STF_LANGUAGE)
  325.     SetHelpFile "wavelan.hlp" 100 100
  326.     UI Start "InputDlg"
  327.     IfStr(i) $(DLGEVENT) == "CONTINUE"
  328.         Set IOAddrHexValue = $(Combo1Out)
  329.         Set IOAddrValue = *($(IOAddrList), ~($(IOAddrHexList),$(IOAddrHexValue)))
  330.         UI Pop 1
  331.     Else-IfStr(i) $(DLGEVENT) == "BACK"
  332.         Set CommonStatus = STATUS_USERCANCEL
  333.         Debug-Output "WaveLAN: Action CANCEL"
  334.         UI Pop 1
  335.         Goto end
  336.     Else
  337.         UI Pop 1
  338.         Debug-Output "WaveLAN: Action UNKNOWN"
  339.         Goto end
  340.     EndIf
  341. adapterVerify = +
  342.     Shell "" DebugConfiguration "After Dialog"
  343.     IfStr(i) $(DetectedCard) != TRUE
  344.         Goto skipOptions
  345.     EndIf
  346.     Debug-Output "WaveLAN: Calling Param_VerifyCard"
  347.     Shell $(ParamInf) Param_VerifyCard $(!STF_NCDETCARD)
  348.     IfStr(i) $($R0) == STATUS_SUCCESSFUL
  349.         Debug-Output "WaveLAN: Param_VerifyCard succeeded"
  350.         Goto skipOptions
  351.     EndIf
  352.     Set from = adapterOptions
  353.     Set to = skipOptions
  354.     Shell $(UtilityInf),RegistryErrorString,VERIFY_WARNING
  355.     IfInt $($ShellCode) != $(!SHELL_CODE_OK)
  356.         Debug-Output "WaveLAN: Cannot run RegistryErrorString"
  357.         Goto ShellCodeError
  358.     EndIf
  359.     Set Error = $($R0)
  360.     Goto Warning
  361. skipOptions = +
  362.     Debug-Output "WaveLAN: skipOptions"
  363.     IfInt $(OldVersionExisted) == $(TRUE)
  364.         IfStr(i) $(!NTN_InstallMode) == configure
  365.             Goto writeParameters
  366.         EndIf
  367.     EndIf
  368.     StartWait
  369.     IfInt $(OldVersionExisted) == $(FALSE)
  370.         IfStr(i) $(!NTN_InstallMode) == "install"
  371.             IfStr(i) $(DoCopy) == "YES"
  372.                 Shell $(UtilityInf), DoAskSource, $(!STF_CWDDIR), $(SrcDir) YES
  373.                 IfInt $($ShellCode) != $(!SHELL_CODE_OK)
  374.                     Goto ShellCodeError
  375.                 Else-IfStr(i) $($R0) == STATUS_FAILED
  376.                     Shell $(UtilityInf) RegistryErrorString "ASK_SOURCE_FAIL"
  377.                     IfInt $($ShellCode) != $(!SHELL_CODE_OK)
  378.                         Goto ShellCodeError
  379.                     EndIf
  380.                     Set Error = $($R0)
  381.                     Goto fatal
  382.                 Else-IfStr(i) $($R0) == STATUS_USERCANCEL
  383.                     Goto successful
  384.                 EndIf
  385.                 Set SrcDir = $($R1)
  386.             EndIf
  387.             install "Install-Option"
  388.             IfStr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS
  389.                 Shell $(UtilityInf) RegistryErrorString "UNABLE_COPY_FILE"
  390.                 IfInt $($ShellCode) != $(!SHELL_CODE_OK)
  391.                     Goto ShellCodeError
  392.                 EndIf
  393.                 Set Error = $($R0)
  394.                 Goto fatal
  395.             EndIf
  396.         EndIf
  397.         Shell $(UtilityInf), AddSoftwareComponent, $(Manufacturer), +
  398.             $(ProductSoftwareName), +
  399.             $(ProductSoftwareName), +
  400.             $(ProductSoftwareTitle), $(STF_CONTEXTINFNAME), +
  401.             $(ProductSoftwarePath), "kernel", "NDIS", {}, "",+
  402.             $(NetEventDLL)
  403.         Set OEM_ABANDON_SOFTWARE = TRUE
  404.         IfInt $($ShellCode) != $(!SHELL_CODE_OK)
  405.             Debug-Output "WaveLAN: Cannot run AddSoftwareComponent"
  406.             Goto ShellCodeError
  407.         EndIf
  408.         Set RegistryErrorIndex = $($R0)
  409.         IfStr(i) $(RegistryErrorIndex) != NO_ERROR
  410.             EndWait
  411.             Debug-Output "WaveLAN: AddSoftwareComponent ERROR="$(RegistryErrorIndex)
  412.             CloseRegKey $($R1)
  413.             CloseRegKey $($R2)
  414.             CloseRegKey $($R3)
  415.             CloseRegKey $($R4)
  416.             CloseRegKey $($R5)
  417.             Goto fatalRegistry
  418.         EndIf
  419.         Set SoftProductKey      = $($R1)
  420.         Set SoftNetRuleKey      = $($R2)
  421.         Set SoftServiceKey      = $($R3)
  422.         Set SoftParameterKey    = $($R4)
  423.         Set SoftLinkageKey      = $($R5)
  424.         Set NewValueList = {{SoftwareType,$(NoTitle),$(!REG_VT_SZ),$(SoftwareType)},+
  425.                             {MajorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMajorVersion)},+
  426.                             {MinorVersion,$(NoTitle),$(!REG_VT_DWORD),$(ProductMinorVersion)},+
  427.                             {Title,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareTitle)},+
  428.                             {Description,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareDescription)},+
  429.                             {ServiceName,$(NoTitle),$(!REG_VT_SZ),$(ProductSoftwareName)},+
  430.                             {InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)}}
  431.         Shell  $(UtilityInf), AddValueList, $(SoftProductKey), $(NewValueList)
  432.         IfInt $($ShellCode) != $(!SHELL_CODE_OK)
  433.             Debug-Output "WaveLAN: Cannot run AddValueList: SoftProductKey"
  434.             Goto ShellCodeError
  435.         EndIf
  436.         Set RegistryErrorIndex = $($R0)
  437.         IfStr(i) $(RegistryErrorIndex) != NO_ERROR
  438.             EndWait
  439.             Debug-Output "WaveLAN: AddValueList ERROR="$(RegistryErrorIndex)
  440.             CloseRegKey $(SoftProductKey)
  441.             CloseRegKey $(SoftNetRuleKey)
  442.             CloseRegKey $(SoftServiceKey)
  443.             CloseRegKey $(SoftParameterKey)
  444.             CloseRegKey $(SoftLinkageKey)
  445.             Goto fatalRegistry
  446.         EndIf
  447.         Set NewValueList = {{type,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSoftwareType)},+
  448.                             {use,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSoftwareUse)}, +
  449.                             {bindform,$(NoTitle),$(!REG_VT_SZ),$(NetRuleSoftwareBindForm)}, +
  450.                             {class,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleSoftwareClass)}, +
  451.                             {bindable,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleSoftwareBindable)}, +
  452.                             {InfOption,$(NoTitle),$(!REG_VT_SZ),$(Option)}}
  453.         Shell  $(UtilityInf), AddValueList, $(SoftNetRuleKey), $(NewValueList)
  454.         IfInt $($ShellCode) != $(!SHELL_CODE_OK)
  455.             Debug-Output "WaveLAN: Cannot run AddValueList: SoftNetRuleKey"
  456.             Goto ShellCodeError
  457.         EndIf
  458.         Set RegistryErrorIndex = $($R0)
  459.         CloseRegKey $(SoftProductKey)
  460.         CloseRegKey $(SoftNetRuleKey)
  461.         CloseRegKey $(SoftServiceKey)
  462.         CloseRegKey $(SoftParameterKey)
  463.         CloseRegKey $(SoftLinkageKey)
  464.         IfStr(i) $(RegistryErrorIndex) != NO_ERROR
  465.             EndWait
  466.             Debug-Output "WaveLAN: AddValueList ERROR="$(RegistryErrorIndex)
  467.             Goto fatalRegistry
  468.         EndIf
  469.     EndIf
  470. doEachAdapter = +
  471.     IfInt $(BoardType) == 3
  472.         ForListDo $(AdapterList)
  473.             Set BusNum = *($($),1)
  474.             Set SlotNum = *($($),2)
  475.             Debug-Output "WaveLAN: doEachAdapter - BusNum="$(BusNum)" SlotNum="$(SlotNum)
  476.             Shell $(UtilityInf), IsNetCardAlreadyInstalled, $(BusNum), +
  477.                 $(SlotNum), $(ProductHardwareDescriptionMCA), $(ProductHardwareName)
  478.             IfInt $($ShellCode) != $(!SHELL_CODE_OK)
  479.                 Debug-Output "WaveLAN: Cannot run IsNetCardAlreadyInstalled"
  480.                 Goto ShellCodeError
  481.             EndIf
  482.             IfStr $($R0) != "NO_ERROR"
  483.                 Debug-Output "WaveLAN: IsNetCardAlreadyInstalled ERROR="$($R0)
  484.                 Set Error = $($R0)
  485.                 Goto fatal
  486.             EndIf
  487.             IfStr(i) $($R1) != "YES"
  488.                 Debug-Output "WaveLAN: Calling doOneAdapter."
  489.                 goto doOneAdapter
  490. doNextAdapter = +
  491.                 Debug-Output "WaveLAN: Return from doOneAdapter."
  492.             EndIf
  493.         EndForListDo
  494.         Goto successful
  495.     EndIf
  496. doOneAdapter = +
  497.     Shell $(UtilityInf), AddHardwareComponent, $(ProductHardwareName),$(STF_CONTEXTINFNAME),$(ProductKeyName)
  498.     IfInt $($R4) != -1
  499.         Set OEM_ABANDON_OPTIONS = >($(OEM_ABANDON_OPTIONS), $(!NTN_SoftwareBase)"\Microsoft\Windows NT\CurrentVersion\NetworkCards\"$($R4))
  500.     EndIf
  501.     IfInt $($ShellCode) != $(!SHELL_CODE_OK)
  502.         Debug-Output "WaveLAN:Cannot run AddHardwareComponent"
  503.         Goto ShellCodeError
  504.     EndIf
  505.     Set RegistryErrorIndex = $($R0)
  506.     IfStr(i) $(RegistryErrorIndex) != NO_ERROR
  507.         EndWait
  508.         Debug-Output "WaveLAN: AddHardwareComponent ERROR="$($R0)
  509.         CloseRegKey $($R1)
  510.         CloseRegKey $($R2)
  511.         CloseRegKey $($R3)
  512.         Goto fatalRegistry
  513.     EndIf
  514.     Set HardNetCardKey    = $($R1)
  515.     Set KeyAdapterRules = $($R2)
  516.     Set KeyParameters    = $($R3)
  517.     Set AdapterNumber    = $($R4)
  518.     Set NewValueList = {{Manufacturer,$(NoTitle),$(!REG_VT_SZ),$(Manufacturer)},+
  519.                         {Title,$(NoTitle),$(!REG_VT_SZ),"["$($R4)"] "$(ProductHardwareTitle)},+
  520.                         {Description,$(NoTitle),$(!REG_VT_SZ),$(ProductHardwareDescriptionISA)},+
  521.                         {ProductName,$(NoTitle),$(!REG_VT_SZ),$(ProductHardwareName)},+
  522.                         {ServiceName,$(NoTitle),$(!REG_VT_SZ),$($R5)},+
  523.                         {InstallDate,$(NoTitle),$(!REG_VT_DWORD),*($(Now),1)}}
  524.     Shell  $(UtilityInf), AddValueList, $(HardNetCardKey), $(NewValueList)
  525.     IfInt $($ShellCode) != $(!SHELL_CODE_OK)
  526.         Debug-Output "WaveLAN: Cannot run AddValueList: HardNetCardKey"
  527.         Goto ShellCodeError
  528.     EndIf
  529.     Shell $(UtilityInf), GetBusTypeNum
  530.     Set BusTypeNum = $($R1)
  531.     IfInt $($ShellCode) != $(!SHELL_CODE_OK)
  532.         Debug-Output "WaveLAN: Cannot run GetBusTypeNum"
  533.         Goto ShellCodeError
  534.     EndIf
  535.     Set TempProdName = """"$(ProductHardwareName)$(AdapterNumber)""""
  536.     Set TempBindForm = $(TempProdName)$(NetRuleHardwareBindForm)
  537.     Set NewValueList = {{type,$(NoTitle),$(!REG_VT_SZ),$(NetRuleHardwareType)},+
  538.                         {bindform,$(NoTitle),$(!REG_VT_SZ),$(TempBindForm)}, +
  539.                         {class,$(NoTitle),$(!REG_VT_MULTI_SZ),$(NetRuleHardwareClass)}, +
  540.                         {InfOption,$(NoTitle),$(!REG_VT_SZ),$(Option)}}
  541.     Shell  $(UtilityInf), AddValueList, $(KeyAdapterRules), $(NewValueList)
  542.     IfInt $($ShellCode) != $(!SHELL_CODE_OK)
  543.         Debug-Output "WaveLAN: Cannot run AddValueList: KeyAdapterRules"
  544.         Goto ShellCodeError
  545.     EndIf
  546.     Set RegistryErrorIndex = $($R0)
  547.     IfStr(i) $(RegistryErrorIndex) != NO_ERROR
  548.         EndWait
  549.         Debug-Output "WaveLAN: AddValueList: KeyAdapterRules ERROR="$(RegistryErrorIndex)
  550.         CloseRegKey $(KeyParameters)
  551.         CloseRegKey $(KeyAdapterRules)
  552.         Goto fatalRegistry
  553.     EndIf
  554.     CloseRegKey $(HardNetCardKey)
  555.     CloseRegKey $(KeyAdapterRules)
  556.     Goto writeParameters
  557. writeParameters = +
  558.     IfInt $(BoardType) == 1
  559. ; ISA
  560.         Set NewValueList = {{BusType,$(NoTitle),$(!REG_VT_DWORD),1},+
  561.                            {Debug,$(NoTitle),$(!REG_VT_DWORD),33025},+
  562.                            {BusNumber,$(NoTitle),$(!REG_VT_DWORD),$(BusNum)},+
  563.                            {MediaType,$(NoTitle),$(!REG_VT_DWORD),1},+
  564.                    {IoBaseAddress,$(NoTitle),$(!REG_VT_DWORD),$(IOAddrValue)}}
  565.     Else
  566. ; MCA
  567.         Set NewValueList = {{BusType,$(NoTitle),$(!REG_VT_DWORD),3},+
  568.                    {Debug,$(NoTitle),$(!REG_VT_DWORD),33025},+
  569.                            {BusNumber,$(NoTitle),$(!REG_VT_DWORD),$(BusNum)},+
  570.                            {MediaType,$(NoTitle),$(!REG_VT_DWORD),1},+
  571.                    {SlotNumber,$(NoTitle),$(!REG_VT_DWORD),$(IOAddrValue)}}
  572.     EndIf
  573.     Shell  $(UtilityInf), AddValueList, $(KeyParameters), $(NewValueList)\
  574.     CloseRegKey $(KeyParameters)
  575.     IfInt $($ShellCode) != $(!SHELL_CODE_OK)
  576.         Debug-Output "WaveLAN: Cannot run AddValueList: KeyParameters"
  577.         Goto ShellCodeError
  578.     EndIf
  579.     Set RegistryErrorIndex = $($R0)
  580.     IfStr(i) $(RegistryErrorIndex) != NO_ERROR
  581.         Debug-Output "WaveLAN: AddValueList: KeyParameters ERROR="$(RegistryErrorIndex)
  582.         Goto fatalRegistry
  583.     EndIf
  584.     EndWait
  585.     IfInt $(BoardType) == 3
  586.         Goto doNextAdapter
  587.     EndIf
  588.     Goto successful
  589. BindingAdapter =+
  590.     Set Error =  "WaveLAN: Setup does not support binding."
  591.     Debug-Output $(Error)
  592.     Goto fatal
  593. RemoveAdapter = +
  594.     Debug-Output "WaveLAN: RemoveAdapter"
  595.     IfStr(i) $(ProductKeyName) == $(!NTN_RegBase)
  596.         Debug-Output "WaveLAN: Calling RemoveSoftwareComponent"
  597.         Shell $(UtilityInf), RemoveSoftwareComponent, $(Manufacturer), +
  598.             $(ProductSoftwareName)
  599.         IfInt $($ShellCode) != $(!SHELL_CODE_OK)
  600.             Debug-Output "WaveLAN: Cannot run RemoveSoftwareComponent"
  601.             Goto ShellCodeError
  602.         EndIf
  603.         Set RegistryErrorIndex = $($R0)
  604.         IfStr(i) $(RegistryErrorIndex) != NO_ERROR
  605.             Debug-Output "WaveLAN: RemoveSoftwareComponent ERROR="$($R0)
  606.             Goto fatalRegistry
  607.         EndIf
  608.     Else
  609.         Debug-Output "WaveLAN: Calling RemoveHardwareComponent"
  610.         Shell $(UtilityInf), RemoveHardwareComponent, $(Manufacturer), +
  611.             $(ProductHardwareName), $(!NTN_RegBase)
  612.         IfInt $($ShellCode) != $(!SHELL_CODE_OK)
  613.             Debug-Output "WaveLAN: Cannot run RemoveHardwareComponent"
  614.             Goto ShellCodeError
  615.         EndIf
  616.         Set RegistryErrorIndex = $($R0)
  617.         IfStr(i) $(RegistryErrorIndex) != NO_ERROR
  618.             Debug-Output "WaveLAN: RemoveHardwareComponent ERROR="$($R0)
  619.             Goto fatalRegistry
  620.         EndIf
  621.     EndIf
  622.     Goto end
  623. UpgradeSoftware = +
  624.     Debug-Output "WaveLAN: UpgradeSoftware"
  625.     IfStr(i) $(ProductKeyName) == $(!NTN_RegBase)
  626.         OpenRegKey $(!REG_H_LOCAL) "" $(ProductKeyName) $(MAXIMUM_ALLOWED) KeyProduct
  627.         IfStr $(KeyProduct) != $(KeyNull)
  628.             GetRegValue $(KeyProduct),"MajorVersion", VersionInfo
  629.             Set Version = *($(VersionInfo), 4)
  630.             Shell $(UtilityInf), GetInfFileNameFromRegistry, $(KeyProduct)
  631.             IfInt $($ShellCode) != $(!SHELL_CODE_OK)
  632.                 Debug-Output "WaveLAN: Cannot run GetInfFileNameFromRegistry"
  633.                 Goto ShellCodeError
  634.             EndIf
  635.             Set !UG_Filename = $($R0)
  636.             IfStr(i) $(!UG_Filename) != ""
  637.                 install "Install-Update"
  638.                 IfStr(i) $(STF_INSTALL_OUTCOME) != STF_SUCCESS
  639.                     Debug-Output "WaveLAN: Install ERROR="$(STF_INSTALL_OUTCOME)
  640.                     Goto fatal
  641.                 EndIf
  642.             EndIf
  643.             SetRegValue $(KeyProduct) {MajorVersion,$(NoTitle),$(!REG_VT_SZ),$(ProductMajorVersion)}
  644.             SetRegValue $(KeyProduct) {MinorVersion,$(NoTitle),$(!REG_VT_SZ),$(ProductMinorVersion)}
  645.             IfInt $(Version) != $(ProductVersion)
  646.             EndIf
  647.             CloseRegKey $(KeyProduct)
  648.         Else
  649.             Debug-Output "WaveLAN: KeyProduct ERROR="$(KeyProduct)
  650.             Goto fatalRegistry
  651.         EndIf
  652.     Else
  653.         OpenRegKey $(!REG_H_LOCAL) "" $(!NTN_RegBase) +
  654.                 $(MAXIMUM_ALLOWED) NetworkCardKey
  655.         IfStr(i) $(NetworkCardKey) != $(KeyNull)
  656.             GetRegValue $(NetworkCardKey),"ServiceName", ServiceNameInfo
  657.             Set ServiceName = *($(ServiceNameInfo), 4)
  658.             OpenRegKey $(NetworkCardKey) "" "NetRules" +
  659.                 $(MAXIMUM_ALLOWED) NetRuleKey
  660.             IfStr(i) $(NetRuleKey) != $(KeyNull)
  661.             Else
  662.                 Debug-Output "WaveLAN: NetKeyRule ERROR="$(NetKeyRule)
  663.                 Goto fatalRegistry
  664.             EndIf
  665.             CloseRegKey $(NetRules)
  666.             CloseRegKey $(NetworkCardKey)
  667.         Else
  668.             Debug-Output "WaveLAN: NetworkCardKey ERROR="$(NetworkCardKey)
  669.             Goto fatalRegistry
  670.         EndIf
  671.         OpenRegKey $(!REG_H_LOCAL) "" +
  672.                 $(!NTN_ServiceBase)"\"$(ServiceName) +
  673.                 $(MAXIMUM_ALLOWED) ServiceKey
  674.         IfStr(i) $(ServiceKey) != $(KeyNull)
  675.             CloseRegKey $(ServiceKey)
  676.         Else
  677.             Debug-Output "WaveLAN: ServiceKey ERROR="$(ServiceKey)
  678.             Goto fatalRegistry
  679.         EndIf
  680.     EndIf
  681.     Goto end
  682. successful = +
  683.     Goto end
  684. abandon = +
  685.     ForListDo $(OEM_ABANDON_OPTIONS)
  686.         Shell $(UtilityInf), RemoveHardwareComponent, $(Manufacturer), +
  687.             $(ProductSoftwareName), $($)
  688.         IfInt $($ShellCode) != $(!SHELL_CODE_OK)
  689.             Debug-Output "WaveLAN: Cannot run RemoveHardwareComponent"
  690.             Goto ShellCodeError
  691.         EndIf
  692.         Set RegistryErrorIndex = $($R0)
  693.         IfStr(i) $(RegistryErrorIndex) != NO_ERROR
  694.             Debug-Output "WaveLAN: RemoveHardwareComponent ERROR="$(RegistryErrorIndex)
  695.             Goto fatalRegistry
  696.         EndIf
  697.     EndForListDo
  698.     IfStr(i) $(OEM_ABANDON_SOFTWARE) == TRUE
  699.         Shell $(UtilityInf), RemoveSoftwareComponent, $(Manufacturer), +
  700.             $(ProductSoftwareName), FALSE
  701.         IfInt $($ShellCode) != $(!SHELL_CODE_OK)
  702.             Debug-Output "WaveLAN: Cannot run RemoveSoftwareComponent"
  703.             Goto ShellCodeError
  704.         EndIf
  705.         Set RegistryErrorIndex = $($R0)
  706.         IfStr(i) $(RegistryErrorIndex) != NO_ERROR
  707.             Debug-Output "WaveLAN: RemoveSoftwareComponent ERROR="$(RegistryErrorIndex)
  708.             Goto fatalRegistry
  709.         EndIf
  710.     EndIf
  711.     Goto end
  712. warning = +
  713.     Shell $(SubRoutineInf) SetupMessage, $(!STF_LANGUAGE), "WARNING", $(Error)
  714.     IfInt $($ShellCode) != $(!SHELL_CODE_OK)
  715.         Debug-Output "WaveLAN: Cannot run SetupMessage"
  716.         Goto ShellCodeError
  717.     EndIf
  718.     IfStr(i) $($R1) == "OK"
  719.         Debug-Output "WaveLAN: WARNING goto "$(to)
  720.         Goto $(to)
  721.     Else-IfStr(i) $($R1) == "CANCEL"
  722.         Debug-Output "WaveLAN: WARNING goto "$(from)
  723.         Goto $(from)
  724.     Else
  725.         Debug-Output "WaveLAN: WARNING goto end"
  726.         Goto end
  727.     EndIf
  728. nonFatalInfo = +
  729.     Set CommonStatus = STATUS_USERCANCEL
  730.     Set Severity = STATUS
  731.     Goto nonFatalMsg
  732. nonFatal = +
  733.     Set Severity = nonFatal
  734.     Goto nonFatalMsg
  735. nonFatalMsg = +
  736.     IfStr(i) $(Error) == ""
  737.         Set Severity = nonFatal
  738.         Shell $(UtilityInf) RegistryErrorString "SETUP_FAIL"
  739.         IfInt $($ShellCode) != $(!SHELL_CODE_OK)
  740.             Debug-Output "WaveLAN: Cannot run RegistryErrorString"
  741.             Goto ShellCodeError
  742.         EndIf
  743.         Set Error = $($R0)
  744.     EndIf
  745.     Shell $(SubRoutineInf) SetupMessage, $(!STF_LANGUAGE), $(Severity), $(Error)
  746.     IfInt $($ShellCode) != $(!SHELL_CODE_OK)
  747.         Debug-Output "WaveLAN: Cannot run SetupMessage"
  748.         Goto ShellCodeError
  749.     EndIf
  750.     IfStr(i) $($R1) == "OK"
  751.         Debug-Output "WaveLAN: NONFATAL goto "$(from)
  752.         Goto $(from)
  753.     Else
  754.         Debug-Output "WaveLAN: NONFATAL goto end"
  755.         Goto end
  756.     EndIf
  757. fatalRegistry = +
  758.     Shell $(UtilityInf) RegistryErrorString $(RegistryErrorIndex)
  759.     IfInt $($ShellCode) != $(!SHELL_CODE_OK)
  760.         Debug-Output "WaveLAN: Cannot run RegistryErrorString"
  761.         Goto ShellCodeError
  762.     EndIf
  763.     Set Error = $($R0)
  764.     Goto fatal
  765. fatalDetect = +
  766.     Shell $(UtilityInf),RegistryErrorString,CANNOT_DETECT
  767.     IfInt $($ShellCode) != $(!SHELL_CODE_OK)
  768.         Debug-Output "WaveLAN: Cannot run RegistryErrorString"
  769.         Goto ShellCodeError
  770.     EndIf
  771.     Set Error = $($R0)
  772.     Goto fatal
  773. fatal = +
  774.     IfStr(i) $(Error) == ""
  775.         Shell $(UtilityInf) RegistryErrorString "SETUP_FAIL"
  776.         IfInt $($ShellCode) != $(!SHELL_CODE_OK)
  777.             Debug-Output "WaveLAN: Cannot run RegistryErrorString"
  778.             Goto ShellCodeError
  779.         EndIf
  780.         Set Error = $($R0)
  781.     EndIf
  782.     Shell $(SubRoutineInf) SetupMessage, $(!STF_LANGUAGE), "FATAL", $(Error)
  783.     IfInt $($ShellCode) != $(!SHELL_CODE_OK)
  784.         Debug-Output "WaveLAN: Cannot run SetupMessage"
  785.         Goto ShellCodeError
  786.     EndIf
  787.     Goto SetFailed
  788. ShellCodeError = +
  789.     Set DlgType      = "MessageBox"
  790.     Set STF_MB_TITLE = "Error: "$(FunctionTitle)
  791.     Set STF_MB_TEXT  = "Shell Code Error"
  792.     Set STF_MB_TYPE  = 1
  793.     Set STF_MB_ICON  = 3
  794.     Set STF_MB_DEF   = 1
  795.     UI Start "Error Message"
  796.     Goto SetFailed
  797. SetFailed = +
  798.     Set CommonStatus = STATUS_FAILED
  799.     IfStr(i) $(OEM_ABANDON_ON) == TRUE
  800.         Set OEM_ABANDON_ON = FALSE
  801.         Goto abandon
  802.     EndIf
  803.     Goto end
  804. end = +
  805.     Goto term
  806. term = +
  807.     Set !DebugOutputControl    = 0
  808.     Return $(CommonStatus)
  809.  
  810. [DebugConfiguration]
  811.     Debug-Output "WaveLAN: CONFIGURATION:     "$($0)
  812.     Debug-Output "WaveLAN: IOAddrValue        "$(!p:IOAddrValue)
  813.     Return
  814.  
  815. [Install-Option]
  816.     Set STF_VITAL = ""
  817.     IfStr(i) $(AddCopy) == "YES"
  818.         AddSectionFilesToCopyList Files-$(Option) $(SrcDir) $(!STF_WINDOWSSYSPATH)\drivers
  819.     EndIf
  820.     IfStr(i) $(DoCopy) == "YES"
  821.         Set !STF_NCPA_FLUSH_COPYLIST = TRUE
  822.         CopyFilesInCopyList
  823.     EndIf
  824.     IfStr(i) $(DoConfig) == "YES"
  825.     EndIf
  826.     Exit
  827.  
  828. [Install-Update]
  829.     Set STF_VITAL        = ""
  830.     Set STF_OVERWRITE    = "VERIFYSOURCEOLDER"
  831.     AddSectionFilesToCopyList Files-$(Option) $(SrcDir) $(!STF_WINDOWSSYSPATH)\drivers
  832.     AddSectionFilesToCopyList Files-Inf $(SrcDir) $(!STF_WINDOWSSYSPATH)
  833.     Set !STF_NCPA_FLUSH_COPYLIST = TRUE
  834.     CopyFilesInCopyList
  835.     exit
  836.  
  837. [Install-Hlp]
  838.     Set STF_VITAL        = ""
  839.     AddSectionFilesToCopyList Files-Hlp $(SrcDir) $(!STF_WINDOWSSYSPATH)
  840.     CopyFilesInCopyList
  841.     exit
  842.  
  843. [Source Media Descriptions]
  844.     1 = "WaveLAN Setup Disk"
  845.  
  846. [Signature]
  847.     FileType = MICROSOFT_DRVLIB_FILE
  848. [GetSignature]
  849.     read-syms Signature
  850.     return $(FileType)
  851.  
  852. [Files-Inf]
  853.     1, oemSetnt.inf, SIZE=32768, RENAME=$(!UG_Filename)
  854.  
  855. [Files-Hlp]
  856.     1, wavelan.hlp, SIZE=999
  857.  
  858. [Files-WAVELAN_ISA]
  859.     1, WaveLAN.sys , SIZE=65536
  860.  
  861. [Files-WAVELAN_MCA]
  862.     1, WaveLAN.sys , SIZE=65536
  863.  
  864. [ProductType]
  865.     STF_PRODUCT                    = winNT
  866.     STF_PLATFORM                = i386
  867.  
  868. [Options]
  869.     WAVELAN_ISA
  870.     WAVELAN_MCA
  871.  
  872. [LanguagesSupported]
  873.     ENG
  874.  
  875. [OptionsTextENG]
  876.     WAVELAN_ISA                    = "WaveLAN ISA Bus Adapter"
  877.     WAVELAN_MCA                    = "WaveLAN MCA Bus Adapter"
  878.  
  879. [FileConstantsENG]
  880.     ProCaption                   = "Windows NT Setup"
  881.     ProCancel                    = "Cancel"
  882.     ProCancelMsg                 = "Windows NT Networking is not correctly installed.  "+
  883.                                   "Are you sure you want to cancel copying files?"
  884.     ProCancelCap                 = "Network Setup Message"
  885.     ProText1                     = "Copying:"
  886.     ProText2                     = "To:"
  887.     FunctionTitle               = "WaveLAN Adapter Setup"
  888.     ProductSoftwareDescription  = "WaveLAN Adapter Driver"
  889.     ProductHardwareDescriptionISA  = "WaveLAN *ISA* bus adapter"
  890.     ProductHardwareDescriptionMCA  = "WaveLAN *MCA* bus adapter"
  891.  
  892. [DialogConstantsENG]
  893.     Help                        = "&Help"
  894.     Exit                        = "Cancel"
  895.     OK                          = "OK"
  896.     HelpContext                 = ""
  897.     Continue                    = "Continue"
  898.     Cancel                      = "Cancel"
  899.  
  900. [FileDependentDlgENG]
  901.     DlgTemplate                 = "SINGLE_COMBO"
  902.     DlgType                     = "RadioCombination"
  903.     Caption                     = $(FunctionTitle)
  904. ;    Combo1Label                 = "I/O &Port Address:"
  905.     Label1                         = $(Combo1Label)
  906.     Combo1List                     = $(IOAddrHexList)
  907.     Combo1Out                      = $(IOAddrHexValue)
  908.     ComboListItemsIn              = {Combo1List}
  909.     ComboListItemsOut             = {Combo1Out}
  910.     EditTextIn                     = ""
  911.     EditTextLim                 = ""
  912.     CBOptionsGreyed             = {}
  913.     NotifyFields                = {NO, NO, NO, NO}
  914.     HelpContext                = 100
  915.